//给定一个整数 n ，返回 n! 结果中尾随零的数量。 
//
// 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 
//
// 
//
// 示例 1： 
//
// 
//输入：n = 3
//输出：0
//解释：3! = 6 ，不含尾随 0
// 
//
// 示例 2： 
//
// 
//输入：n = 5
//输出：1
//解释：5! = 120 ，有一个尾随 0
// 
//
// 示例 3： 
//
// 
//输入：n = 0
//输出：0
// 
//
// 
//
// 提示： 
//
// 
// 0 <= n <= 10⁴ 
// 
//
// 
//
// 进阶：你可以设计并实现对数时间复杂度的算法来解决此问题吗？ 
//
// Related Topics 数学 👍 859 👎 0


package LeetCode.editor.cn;

/**
 * @author ldltd
 * @date 2024-12-19 23:24:56
 * @description 172.阶乘后的零
 */
public class FactorialTrailingZeroes{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 FactorialTrailingZeroes fun=new FactorialTrailingZeroes();
	 	 Solution solution = fun.new Solution();
		 System.out.println(solution.helper(30));

	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
		 //每有一对 2 5 就必有10 每过一个5，肯定不止一个2
	     //比如2-5  中间还有4，所以只需要统计有多少个5
	     //每个5就是一个0
		 //5 10 15 20 25 30 ,且每过五又多一个5
    public int trailingZeroes( int n) {
		int res=0;
		while (n!=0){
			res+=n/5;
			n/=5;
		}
        return res;
    }
	private double helper(int n){
		if(n==1||n==0) return 1;
		return n*helper(n-1);
	}
}
//leetcode submit region end(Prohibit modification and deletion)

}
